export interface BuildingTreeData {
    id: string;
    pid: string;
    level: number;
    name: string;
    premisesId: string;
    buildId: string;
    signType: number; // signType-签约类型: 1.梯内屏，2.梯外屏，3.梯内框，4.梯外框，5.门禁，6.道闸
    eleNum: string;
    eleType: string;
    gateType: string;
    subType: string;
    showEdit: boolean;
    showDelete: boolean;
    sonList: Array<Object>;
    expand: boolean;
}

export interface BuildingTreeMenuItem {
    command: string;
    name: string;
    show: boolean;
}

export interface BuildingForm {
    name: string;
}

export interface BuildingFormRules {
    name: Array<Object>;
}

export interface UnitForm {
    name: string;
}

export interface UnitFormRules {
    name: Array<Object>;
}

export interface ElevatorForm {
    eleNum: string;
    name: string;
    eleType: string;
}

export interface ElevatorFormRules {
    eleNum: Array<Object>;
    name: Array<Object>;
    eleType: Array<Object>;
}

export interface FloorForm {
    name: string;
}

export interface FloorFormRules {
    name: Array<Object>;
}

export interface GateForm {
    name: string;
}

export interface GateFormRules {
    name: Array<Object>;
}

export interface GatewayForm {
    name: string;
    subType: string;
}

export interface GatewayFormRules {
    name: Array<Object>;
    subType: Array<Object>;
}

export interface BuildingTreeElevatorInsideState {
    buildingTreeData: BuildingTreeData;
    buildingTreeMenuList: Array<BuildingTreeMenuItem>;
    buildingTreePopoverShow: boolean;
    buildingTreeCurrentNodeData: BuildingTreeData;
    currentOperateMenuItem: BuildingTreeMenuItem;
    dialogBtnLoading: boolean;
    buildingDialogShow: boolean;
    buildingForm: BuildingForm;
    buildingFormRules: BuildingFormRules;
    unitDialogShow: boolean;
    unitForm: UnitForm;
    unitFormRules: UnitFormRules;
    elevatorDialogShow: boolean;
    elevatorForm: ElevatorForm;
    elevatorFormRules: ElevatorFormRules;
    pointDrawerShow: boolean;
    editPointDrawerShow: boolean;
}

export interface BuildingTreeElevatorOutsideState {
    buildingTreeData: BuildingTreeData;
    buildingTreeMenuList: Array<BuildingTreeMenuItem>;
    buildingTreePopoverShow: boolean;
    buildingTreeCurrentNodeData: BuildingTreeData;
    currentOperateMenuItem: BuildingTreeMenuItem;
    dialogBtnLoading: boolean;
    buildingDialogShow: boolean;
    buildingForm: BuildingForm;
    buildingFormRules: BuildingFormRules;
    unitDialogShow: boolean;
    unitForm: UnitForm;
    unitFormRules: UnitFormRules;
    floorDialogShow: boolean;
    floorForm: FloorForm;
    floorFormRules: FloorFormRules;
    pointDrawerShow: boolean;
    elevatorDialogShow: boolean;
    elevatorForm: ElevatorForm;
    elevatorFormRules: ElevatorFormRules;
    editPointDrawerShow: boolean;
}

export interface BuildingTreeAccessDoorState {
    buildingTreeData: BuildingTreeData;
    buildingTreeMenuList: Array<BuildingTreeMenuItem>;
    buildingTreePopoverShow: boolean;
    buildingTreeCurrentNodeData: BuildingTreeData;
    currentOperateMenuItem: BuildingTreeMenuItem;
    dialogBtnLoading: boolean;
    buildingDialogShow: boolean;
    buildingForm: BuildingForm;
    buildingFormRules: BuildingFormRules;
    gateDialogShow: boolean;
    gateForm: GateForm;
    gateFormRules: GateFormRules;
    gatewayDialogShow: boolean;
    gatewayForm: GatewayForm;
    gatewayFormRules: GatewayFormRules;
    pointDrawerShow: boolean;
    editPointDrawerShow: boolean;
}
